草庐IT

Python GTK+ 部件名称

全部标签

c++ - 在#include 中获取当前编译单元名称

我当前的目标是创建一行(或尽可能少的)代码,将事件编译单元的其余部分切换到未优化的调试配置。我的第一直觉是:FORCE_DEBUG;//codebelowherewillbeforcedtobeunoptimizedandinadebugenvironment或#include"ForceDebug.h"//codebelowherewillbeforcedtobeunoptimizedandinadebugenvironment会很理想。在我的工作区中,要转换为未优化的调试配置,我需要更改pragma优化级别,还需要#undef一些宏和#define其他宏。FORCE_DEBUG宏不

c++ - 在运行时修改模板函数的名称 - 可能吗?

假设我写了一个foo函数(我有一个带有命名空间的完整签名),但现在别管它了);并假设没有其他函数重载它(在它所在的相关命名空间中)。现在让我们将自己置于运行时。假设我有字符串“foo”,对于某种类型MyType,我有typeid(MyType)(来自header)。我能以某种方式获得foo的符号名称吗??这个问题的第二个版本:现在假设我有foo的完整签名作为一个字符串,而不仅仅是名字;并放弃关于没有重载的假设。注意事项:不,我问的不是符号本身,只是名称。这将是另一个有趣的问题。答案取决于foo来自共享库是相关的,尽管我认为它不应该只对符号name重要。我不关心这里的性能,我会做任何需要

c++ - 此方法是否已有名称?

我发现有时候函数有很多参数。这些参数中有很多是可选的,有时这些选项中的一组通常来自单个其他对象(因此您最终会执行foo(Object.GetN(),Object.GetM(),Object.GetK()))。处理它的一种常见方法是为它可能被调用的不同情况创建不同的重载:foo(intn,intm,intk/*,andonandon*/);foo(boolb,intm/*,...*/);foo(intm,intk/*,...*/);foo(Object_tobject/*,...*/);//...这里的问题是哪个参数不是特别直观,当您调用与预期不同的重载时,您可能会大吃一惊。最近我有了一

c++ - GTK+ 对多个小部件使用一个处理程序

我有一个回调函数如下:voidhandle(GtkWidget*widget,gpointerdata){...}因为这个窗口有很多小部件,所以我想使用这个回调作为唯一的处理程序,以避免编写一堆小函数。最初我想使用一个存储在环绕窗口的UI类中的枚举,然后我将按如下方式对其进行测试:UIClass::Signalsignal=(UIClass::Signal)data;switch(signal){caseUIClass::main_button://handlecaseUIClass::check_box:...}但是编译器拒绝在该片段的第一行进行强制转换。有没有标准的方法来完成这个?

c++ - 为什么隐式声明不引入名称?

之前看了下面两个问题,还是没看懂。1.WhydoIneedto#includewhenusingthetypeidoperator?2.Whenis#includelibraryrequiredinC++?自typeid使用type_info类,要求我们是合理的#include.但是,newoperators还使用std::bad_alloc,为什么它不需要我们#include?(我知道sizeof()不需要因为size_t可以在编译期间用内置类型替换,只要编译器知道size_t实际上是什么。)根据第二个问题中投票最多的答案,他说:Note:theimplicitdeclaration

.net - 什么最适合桌面小部件(占地面积小且图形漂亮)?

如果我想创建一个外观漂亮的小部件以在后台运行且内存占用少,我应该从哪里开始构建Windows应用程序。它的目标是从Web服务中保留更新的项目列表。类似于RSS阅读器。注意:数据层将通过REST连接,我已经有一个C#dll,我认为这不会对占用空间产生太大影响。显然我想使用一个不错的WPF项目,但是~60,000k的初始大小太大了。*C#Forms应用程序约为20,000k*C++表单~16,000k*CLR或MFC小得多,不到5有没有办法去除WPF或Forms?如果我坚持使用CLR或MFC,那么最简单的方法是让它变得漂亮。(我使用MFC的经验是制作非常有奖的表格)更新:澄清以上大小是进程

c++ - 修改dll导出(符号表)。我想混淆函数名称

我有一个第三方dll,我想更改符号名称。这可能吗?我不想让竞争对手知道我的产品使用什么组件。我没有dll的源代码。 最佳答案 在链接和运行时将可执行文件与dll绑定(bind)需要符号表。它通常包含装饰函数名称和序数。可以只使用序数。如果您正在构建库,您可以定义.def文件来控制符号表。但如果这是预建的第3方库,可能很难走。当然一切皆有可能,但我怀疑你的努力是否值得。如果您绝望了,我会尝试在十六进制编辑器中更retrofit饰函数名称中的一个字母,查找此函数的序数值,然后尝试使用带有此函数序数的GetProcAddress。

c++ - 名称查找中的重载解析/歧义(哪一个)

$7.3.3/14(C++03)structA{intx();};structB:A{};structC:A{usingA::x;intx(int);};structD:B,C{usingC::x;intx(double);};intf(D*d){returnd->x();//ambiguous:B::xorC::x}“f”中代码中的注释表明可以预期“B::x”或“C::x”之间存在歧义。然而,在使用g++(ideone)或Comeau编译时,错误略有不同。这些错误不是指示B::x或C::x中的歧义,而是指示A是D的歧义基这一事实prog.cpp:Infunction‘intf(D*)

c++ - 将 SNMP OID 转换为 Win32 上的描述性名称

将SNMPOID转换为等效的描述性名称的推荐方法是什么?即从1.3.6.1.2.1.1.9.1.4.7到SNMPv2-MIB::sysORUpTime.7我正在用C++编写代码,平台应该是XP及更高版本,并且正在寻找一种相当快速且占用空间小的方法来执行此操作。我知道libsmi或net-snmp可以做到这一点,但是Win32API中是否有任何东西可以直接做到这一点?此外,我知道需要安装必要的MIB文件-Windows下是否有MIB文件的“集中”位置? 最佳答案 Microsoft没有任何用于此类转换的Win32API(最接近的是Ma

c++ - 为什么 sun C++ 编译器在使用调试信息进行编译时会更改符号名称?

我有这个源文件://ConstPointer.cppconstshort*constconst_short_p_const=0;constshort*const_short_p=0;并使用和不使用调试信息对其进行编译(SUNC++编译器5.10):#CCConstPointer.cpp-c-oConstPointer.o#CC-gConstPointer.cpp-c-oConstPointer-debug.o以下是目标文件的符号名称没有调试信息:#nm-CConstPointer.oConstPointer.o:[Index]ValueSizeTypeBindOtherShndxNam